package com.ys.service.hr.impl;

import java.util.List;
import java.util.Map;

import com.ys.entity.base.TbUserJobLevelManage;
import com.ys.util.shiro.ShiroUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.alibaba.fastjson.JSON;
import com.ys.dto.AddDto;
import com.ys.entity.hr.TbJobLevel;
import com.ys.mapper.hr.TbJobLevelMapper;
import com.ys.service.hr.TbJobLevelService;
import com.ys.vo.R;
import org.springframework.transaction.interceptor.TransactionAspectSupport;

@Service("tbJobLevelService")
public class TbJobLevelServiceImpl implements TbJobLevelService {
	
	@Autowired
	private TbJobLevelMapper tbJobLevelMapper;

	@Override
	public R search(Map<String, Object> params) throws Exception {
		return null;
	}
	/**
	 * 新增
	 * @param params
	 * @return
	 * @throws Exception
	 */
	@Override
	public R add(Map<String, Object> params) throws Exception {
		
		TbJobLevel entity = JSON.parseObject(JSON.toJSONString(params), TbJobLevel.class);

		tbJobLevelMapper.insert(entity);
		return R.ok(AddDto.closeAndReload());
	}
	
	@Override
	@Transactional
	public R edit(Map<String, Object> params) throws Exception {
		TbJobLevel entity = JSON.parseObject(JSON.toJSONString(params), TbJobLevel.class);

		if (entity.getStatus()==0) {
			int tbUserJobLevelManage = new TbUserJobLevelManage()
					.setRoleLevelId(entity.getId())
					.setStatus(1)
					.count();
			if (tbUserJobLevelManage > 0) {

				return R.error("已使用，不可停用");
			}
		}
		tbJobLevelMapper.update(entity);
		return R.ok("操作成功");
	}
}
